As our reliance on computers for information transfer grows, the demands on computer network bandwidth also become increasingly higher. Computer networks are not only used to send traditional computer data but also voice and video data, which require a significant amount of network bandwidth. With the various applications on network nodes competing to use the network to transmit data, it is necessary to manage the use of the network bandwidth effectively to ensure that the applications get the desired quality of service (QoS) for their transmissions over the network.
As the Internet and the Internet Protocol (IP) is increasingly used to transport real-time data, like voice and video, QoS has to be provided by the underlying network. Since an IP network is a connectionless network, data packets travel independently through the network between their source and destination. To provide the Quality of Service in an Internet Protocol environment, two general approaches have been taken by the Internet Engineering Task Force (IETF) and other standardization bodies. A first approach called Integrated Services assumes explicit reservation of the network resources along the transmission path of the packet, which is similar to setting up an explicit connection throughout the network. It requires explicit signaling and maintenance of states within the network, both of which are in contradiction to the paradigms of a connectionless network. The other approach, called Differentiated Services, assigns priorities for different types of traffic, like control, voice, and video. The priority information is carried in each packet. In case of congestion, packets with the higher priority are forwarded first. This requires cooperation of all applications accessing the network to use the appropriate priorities. In addition, the network utilization should be kept low to accommodate fluctuations of the network usage. One of the priority mechanisms used in conjunction with IEEE 802 networks is commonly referred to as 802.1p. The priority level of a packet is carried in a 3-bit tag element in the header of the packet, representing one of eight priority levels. A mapping to those priorities is defined for different traffic types, like voice and video, as part of the IEEE networking standards 802.1D and 802.1Q. Typically, in a network that implements priorities, each of the network clients and network elements, such as network switches or bridges, has multiple queues associated with the different priority levels, and data packets in higher priority queues are transferred before the packets in the lower priority queues.
Traffic prioritization, however, does not guarantee that the traffic flows will go smoothly over the network. One major issue is that conflicts still exist between applications that send packets at the same priority level when the available network bandwidth is limited. Currently, priority schemes based on 802.1p have no provision for admission control and reservation of network resources. For a network client application that wants to transmit data over the network, if it simply jumps into the traffic and starts transmitting data, it may find out that there is not sufficient bandwidth available at the appropriate priority level to achieve the desired QoS. In that case, not only is the new session itself affected, it also takes away the bandwidth at that priority level already being used by traffic flows of other clients and thus adversely impacts the QoS of those flows. Even if the client can find sufficient bandwidth for its packets at the target priority level, another client that starts a new session on the network may suddenly take that bandwidth away. There is no safeguard to prevent applications from generating excessive amounts of traffic at a given priority level that can cause degradation of the transmission throughput at that priority level.
To successfully deploy applications that require certain bandwidth and delay characteristics from the underlying network, such as audio/video streaming, a mechanism for achieving some degree of bandwidth reservation and admission control (i.e., whether a client should start a new transmission) in the distributed network environment is essential. Several approaches have been proposed for admission control, but they are often too complex and cumbersome to be effective. For instance, one possible approach is to query all the clients and/or network elements to determine the current bandwidth utilization, and use the results to determine whether to allow a new transmission to be admitted into the network. That approach would require the implementation of new protocols and knowledge of the network topology and details of the technology used on network segments between the sender and the receiver. Such requirements are not practical in real deployments of computer networks.
Thus, what is needed is a simple yet effective way to achieve admission control and bandwidth reservation for network transmissions, without imposing excessive overhead and burden on the network clients.